Method of monitoring client interaction with a file downloaded from a server

ABSTRACT

A method for monitoring client interaction with a resource downloaded from a server in a computer network includes the steps of using a client to specify an address of a resource located on a first server, downloading a file corresponding to the resource from the first server in response to specification of the address, using the client to specify an address of a first executable program located on a second server, the address of the first executable program being embedded in the file downloaded from the first server, the first executable program including a software timer for monitoring the amount of time the client spends interacting with and displaying the file downloaded from the first server, downloading the first executable program from the second server to run on the client so as to determine the amount of time the client interacts with the file downloaded from the first server, using a server to acquire client identifying indicia from the client, and uploading the amount of time determined by the first executable program to a third server. The first executable program may also monitor time, keyboard events, mouse events, and the like, in order to track choices and selections made by a user in the file, and may execute upon the occurrence of a predetermined event, as well as monitoring or determining the amount of information downloaded by the client. The monitored information and client identifying indicia is stored on a database in a server for use in analysis and for automatically serving out files assembled according to user interests and preferences.

[0001] This is a continuation application of application Ser. No.09/120,376, filed Jul. 21, 1998, now pending; which is a continuationapplication of 08/821,534, filed Mar. 21, 1997, issued as U.S. Pat. No.5,796,952 on Aug. 18, 1998.

FIELD OF THE INVENTION

[0002] The present invention relates to a method and apparatus formonitoring client use of and interaction with a resource downloaded froma server on a computer network, for storing monitored data, for creatinga database including profiles indexed by user and/or resource identity,and for generating customized resources based upon client profiles.

BACKGROUND OF THE INVENTION

[0003] The development of software packages designed to permitsimplified graphical user interface (GUI)-based access to the wealth ofelectronic information available over the Internet and the World WideWeb has lead to a dramatic increase in the amount of information that iscurrently available over public computer networks. Unlike the highlycontrolled atmosphere of a private computer network, however, it isdifficult to monitor user interaction with network resources on publicnetworks. As a result, it is difficult for individual servers on apublic network to determine how long individual users have interactedwith their resources, or how much information has been downloaded. It isequally difficult for individual servers to target specializedinformation to a particular audience or to learn the identity ofindividual users on a public network.

[0004] The techniques utilized in many private networks for monitoringclient use and interaction do not lend themselves to public networks.For example, user access to a server in private networks is generallyobtained through the use of a unique identification number provided bythe server. Details of individual user interaction with the network areclosely monitored by server-resident processes, and historic databasesare automatically generated and continually updated to track the natureand amount of information accessed by individual users, as well as theirconnection time. This information is generally used, for example, tomaintain a subscriber-indexed billing database.

[0005] In a public computer network, however, use of server-residentmonitoring techniques may be severely limited. In some public networks,subscribers are given unlimited access, via a service provider, to avirtually unlimited number of servers, and no permanent connection isusually made between these servers and a client machine. The nature andamount of information downloaded by individual users is not easilymonitored for each client machine and only limited informationconcerning individual user interaction with the network may generally becaptured by a server (i.e., so-called network ID and client ID).

[0006] Due largely to the lack of advanced monitoring techniquesavailable to individual servers on a public network, the sameinformation is generally served out to all clients on a completelyuntargeted basis. In other words, the same information is generallydownloaded to all users that access a particular resource on a server,irrespective of individual user interests. There is therefore a need toprovide servers on a public network with the ability to automaticallymonitor use of and interaction with resources downloaded by users so asto facilitate the targeted serving of information.

[0007] While various methods are known for obtaining informationconcerning user preferences, no such methods are automatic. Forinstance, one application, known as a “customizable home page”, permitsusers, upon the request of a server, to make certain choices. When auser who has done so contacts that server at a later date, the serverassembles information for downloading to the user in accordance with thepreviously-selected choices. More specifically, the user visits aso-called “Web page” of a particular server where he or she is asked tofill in a blank form by selecting various preferences, such as links tofavorite Web sites, interests in entertainment, sports, and the like.The user then submits this information to the server by clicking theso-called “submit” button of the fill-in form, which causes the clientto transmit the information to the server. The server returns a Web pagewith a response header which creates, or “sets” an ID field located in afile on the client computer (this file is known as the “client ID” or“cookie”) to include information about the user's preferences. When theuser later returns to a specified Uniform Resource Locator, or “URL”, onthe same server, the “client ID” or “cookie” with the previously-setpreference information is transmitted in the HTTP request header to theserver, which can then return a Web page that is assembled according tothe user-specific information. This application is disclosed, forexample, in A. Gundavaram, CGI Programming on the World Wide Web,O'Reilly Press, 1996.

[0008] While the “customizable home page” facilitates the serving ofinformation on a limited targeted basis, it does not provide for theautomatic determination of user interests, and inconveniences the userby requesting that he or she specify various preferences. Moreover, useof a customizable home page is limited to individual Web sites and cannot be “spread out” over multiple resources on different servers. Inother words, while a customizable home page may be of use with respectto the particular resources located on a single server, it does notserve any purpose for other servers on a public network. A variation ofthis technique is used by some servers to download executable programs.For instance, one such application disclosed by G. Cornell and C. S.Horstmann, in Core Java, The SunSoft Press, 1996, involves thegeneration of “order forms” on client computers. In this application,the client machine loads a Web page from a server which has an embeddedlink to an executable program that downloads to and executes on theclient machine. Upon execution in the client machine, the programcontacts the server and retrieves a list of goods and associated prices.The program allows the user to order various goods and requires the userto fill out a form for billing purposes. The user “clicks” on the submitbutton of the fill-in form to transmit the information to the server.Like the customizable home page, this method of user-specific dataacquisition requires the active participation of the user, and does notprovide for the automatic determination of user preferences andinterests.

[0009] In addition to the inability to serve out information on atargeted basis, which is of enormous concern from a marketingstandpoint, the limited monitoring capabilities available to individualservers makes it difficult for servers and administrators to determinehow long users have viewed their resources and how much information hasbeen downloaded by individual users so as to be able to bill client useand interaction with network resources and to analyze the value andeffectiveness of such resources. As a result, much of the informationprovided by a server over a public network is the same for all clients.In addition, while it is currently possible to track a user's linkswithin the same resource, there is no standard way to track user's linksacross multiple resources on different servers. For example, a commonoccurrence in public networks is when a user is viewing a first resourceand “clicks on” a link to a second resource located on a differentserver. In such instances, the second resource is downloaded and thefirst resource is either discarded or held in background. However, thereis generally no uniform way in which to monitor such occurrences. Inaddition, while it is currently possible to track the number of times aparticular resource has been accessed, it has generally not beenpossible to track the length of time a particular resource has beenviewed by a particular user. There is also a great deal of othervaluable information concerning user interaction with a resource whichwould be useful to administrators, advertisers, marketing professionalsand the like, but which can not be conveniently collected using currentmonitoring techniques.

[0010] For example, one of the largest public networks, the “Internet”,has become an extremely popular advertising tool. Many companies havetheir own Internet “Web sites” and have also purchased advertising spacewithin more popular Web sites of other companies. For instance, manyadvertisers purchase so-called “advertising banner” (or “ad banner”)space within the Web page of a popular site, thereby allowing consumersto “click-through” (i.e., specify a link) to the Web site of theadvertiser. In many cases, the use of an ad banner substantiallyincreases the advertiser's exposure. Using the limited monitoringtechniques available to Internet servers, however, it is difficult todetermine the effectiveness of individual Web sites and ad banners. Forinstance, known monitoring techniques are generally limited todetermining the number of times a Web page was downloaded. Similartechniques are used to determine the number of times an ad banner (whichis embedded inside a Web page) has been displayed, and how many timesthe banner was “clicked” on to visit the Web site of the advertiser.

[0011] Generally, an ad banner is embedded inside a Web page located ona first server through the use of the known HTML <IMG> tag. When aclient machine passes a TCP/IP request for the Web page to the firstserver, the Web page is downloaded to the client, including the adbanner embedded using the <IMG> tag. The <IMG> tag is used to referencea resource (i.e., the “ad banner”) stored on the same or a differentserver which captures the user's ID (via the HTTP request header) anddynamically returns an ad related image to the client for display withinthe Web page. At the same time, a counter representing the number oftimes the specific ad has been displayed is incremented. The ad banneritself may have an embedded address referring to yet another Webresource. In such an instance, if the user “clicks” on the ad banner,the client may load a resource on the second server which once againcaptures the user's ID and forwards the user to a Web resource which isappropriate for the displayed ad (for example, a page on theadvertiser's Web site). At the same time, a counter representing thenumber of times the specific ad was clicked on to go to the advertiser'sWeb site is incremented.

[0012] While Web sites and ad banners have, in some cases, been valuablemarketing tools, the limited monitoring capabilities available toservers on networks in which no permanent connection is made between aserver and a client (such as the Internet) has prevented these marketingtools from being used to their full potential. Since HTTP or Web serverscannot automatically determine the amount of time and the frequency atwhich particular users interact with their resources, Web siteadministrators and advertisers cannot accurately determine theeffectiveness of their resources. Since servers cannot automaticallymonitor user interaction and automatically obtain user preferences andinterests, servers cannot assemble and serve resources targeted toindividual user interests.

SUMMARY OF THE INVENTION

[0013] In view of the foregoing shortcomings of the prior art, an objectof the present invention is to provide a method for tracking the use andinteraction of a user with a resource downloaded from a server on anetwork by use of a tracking program embedded in the resource andexecutable by a client. Another object of the present invention is totransmit the tracking information from a client to another computerconnected to the network for storage and analysis.

[0014] Still another object of the present invention is to create adatabase of server resources including, but not limited to, the numberof times a resource has been displayed by clients, the amount of timedisplayed, and the type and amount of information that was displayed ortransferred. This information could be used by network administrators orservers to analyze the effectiveness of the resources made available ontheir network servers.

[0015] Yet another object of the present invention is to provide meansfor creating a database of user profiles for use by advertisers and/ormarketers to determine the effectiveness and value of network-basedadvertisements and/or marketing resources.

[0016] Still yet another object of the present invention is to providemeans for creating a database of user profiles containing details ofindividual user interaction with and use of network resources including,for example, Network IDs (known as “IP address”) and client IDs (knownas “cookies”) that have accessed particular resources, the amount oftime spent by users interacting with and/or using particular resources,and details of choices created by individual users within a particularresource.

[0017] It is still yet another object of the present invention toprovide means for assembling a resource, such as a Web page or a highlytargeted ad banner, in accordance with a historic user profile.

[0018] In order to achieve the above-described and other objects andadvantages, a tracking program is embedded in a file which is downloadedfrom a server to a client. The tracking program need not originate fromthe same server that sent the file, and may be obtained, for example,via an embedded URL that points to a different server. The trackingprogram may be part of a larger program that performs other operations(such as displaying animations, playing sounds, etc.). The trackingprogram is downloaded from a server and runs on the client to monitorvarious indicia, such as elapsed time, mouse events, keyboard events,and the like, in order to track the user's interaction with and use ofthe file or to monitor choices (such as selections or links to otherresources or files) made by the user while within the file. The trackingprogram may also monitor the amount of data downloaded by the client.Operation of the tracking program commences after the program isdownloaded and any required initialization occurs.

[0019] After monitoring the user's interaction with and use of the filedownloaded from the server, the tracking program then automaticallysends the information acquired from the client back to a server forstorage and analysis. The information may be sent before or as theclient exits the file, or may be sent in response to a predetermineduser action. The information preferably includes any available client ornetwork IDs.

[0020] The acquired information is preferably stored on a server andused to build historical profiles of individual users, to serve outhighly targeted information based upon user profiles, as well as toextract information about how much data was downloaded by a respectiveclient, and how long or how often specific files were displayed or inuse by the client.

[0021] Preferably, the tracking program is implemented in a networkbased upon the client/server model, and may be implemented in a publicnetwork such as the Internet or World Wide Web. The tracking program maymonitor use of and interaction with any of the resources downloaded froma server, including an executable program, a database file, aninteractive game, a multimedia application, and the like. In the case ofthe Internet, for example, the tracked resource may, for example, be afile such as a Web page or part of a Web page (such as an ad banner).

[0022] In one embodiment of the present invention, the tracking programis embedded in an HTML document (such as a Web site, a Web page, or partof a Web page-e.g. an “ad banner”). A TCP/IP connection is used by aclient to pass a request for the HTML document. The HTML document isstored in a server running an HTTP service and contains text and one ormore first embedded URLs for pointing to one or more graphical imageslocated on a server, the images being embedded inside the HTML documentusing an HTML <IMG> tag to specify the source URL for an image. The HTMLdocument also contains a second embedded URL for pointing to a firstexecutable program that runs on a server, the first executable programbeing embedded inside the HTML document using an HTML <IMG> tag tospecify the source URL for the program. A second executable program isalso embedded in the HTML document by using a third URL for pointing tothe second executable program. Unlike the first executable program, thesecond executable program is downloaded and runs on the client. Thesecond executable program is embedded using the proper HTML tag toindicate that it is a program that is executable on the client.

[0023] After the HTML document is downloaded to the client, thegraphical images are fetched using a TCP/IP connection to serverresources specified by the one or more first URLs. In attempting tofetch the resource associated with the first executable program, theclient causes the program to run on the server specified by the secondURL. Upon execution of the first executable program, the server capturesidentifying indicia from the client, such as any network or client IDsresident in the HTTP request header sent by the client. The serverstores this information in a client profile database.

[0024] The client also fetches the second executable program, which isthe tracking program. The tracking program downloads to the client, and,after performing any required initialization, determines the currenttime. The tracking program also determines the current time upon theperformance of a predetermined operation on the client computer by auser, such as leaving the HTML document. After calculating the amount oftime the user interacted with and displayed the HTML document, i.e., bydetermining the difference in time values, the tracking program uploadsthe calculated value to the server for storage in the user profiledatabase.

BRIEF DESCRIPTION OF THE DRAWINGS

[0025]FIG. 1 is a diagram of a computer network in which the presentinvention may be implemented;

[0026]FIG. 2 is a block diagram of a client computer which is used inconnection with various preferred embodiments of the present invention;

[0027]FIG. 3 is a flowchart diagram of a first embodiment of the presentinvention, which is a method for monitoring the amount of time a Webpage is displayed on a client computer;

[0028]FIG. 4 is a flowchart diagram of a second embodiment of thepresent invention, which is a method for monitoring the amount of time aWeb page is displayed on a client computer;

[0029]FIG. 5 is a flowchart diagram of a third embodiment of the presentinvention;

[0030]FIG. 6 is a flowchart diagram of a fourth embodiment of thepresent invention; and

[0031]FIG. 7 is a flowchart diagram of a fifth embodiment of the presentinvention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0032] The teachings of the present invention are applicable to manydifferent types of computer networks and may also be used, for instance,in conjunction with direct on-line connections to databases. As will beappreciated by those of ordinary skill in the art, while the followingdiscussion sets forth various preferred implementations of the methodand system of the present invention, these implementations are notintended to be restrictive of the appended claims, nor are they intendedto imply that the claimed invention has limited applicability to onetype of computer network. In this regard, the teachings of the presentinvention are equally applicable for use in local area networks of alltypes, wide area networks, private networks, on-line subscriptionservices, on-line database services, private networks, and publicnetworks including the Internet and the World Wide Web. While theprinciples underlying the Internet and the World Wide Web are describedin some detail hereinbelow in connection with various aspects of thepresent invention, this discussion is provided for descriptive purposesonly and is not intended to imply any limiting aspects to the broadlyclaimed methods and systems of the present invention.

[0033] The present invention, although equally applicable to public andprivate computer networks, is particularly useful for performingmonitoring functions in connection with public networks which could notheretofore be performed. For this reason, implementation of the presentinvention will be discussed in detail in connection with the Internetand the World Wide Web. This discussion is equally applicable to anynetwork based upon the client/server model.

[0034] Accordingly, as will be appreciated by those of ordinary skill inthe art, as used herein, the term “client” refers to a client computer(or machine) on a network, or to a process, such as a Web browser, whichruns on a client computer in order to facilitate network connectivityand communications. Thus, for example, a “client machine” can store andone or more “client processes.” The term “user” is used to broadly referto one or more persons that use a particular client machine.

[0035]FIG. 1 illustrates a known computer network based on theclient-server model, such as the Internet. The network comprises one ormore “servers” 10 which are accessible by “clients” 12, such as personalcomputers, which, in the case of the Internet, is provided through aprivate access provider 14 (such as Digital Telemedia in New York City)or an on-line service provider 16 (such as America On-Line, Prodigy,CompuServe, the Microsoft Network, and the like). Each of the clients 12may run a “Web browser”, which is a known software tool used to accessthe Web via a connection obtained through an Internet access provider.The servers allow access to various network resources. In the Internet,for example, a Web server 10 allows access to so-called “Web sites”which comprise resources in various different formats. A location of aresource on a server is identified by a so-called Uniform ResourceLocator, or URL.

[0036] The “World Wide Web” (“Web”) is that collection of servers on theInternet that utilize the Hypertext Transfer Protocol (HTTP). HTTP is aknown application protocol that provides users access to resources(which can be information in different formats such as text, graphics,images, sound, video, Hypertext Markup Language-“HTML” etc., as well asprograms). HTML is a standard page description language which providesbasic document formatting and allows the developer to specify “links” toother servers and files. Links are specified via a Uniform ResourceLocator or “URL”. Upon specification of a link, the client makes aTCP/IP request to the server and receives information that was specifiedin that URL (for example another “Web page” that was formatted accordingto HTML) in return. The information returned may be generated in wholeor in part by a program that executes on the server. Such programs aretypically known as CGI (Common-Gateway-Interface) scripts and can bewritten using known programming languages or methods that the serversupports, such as PERL or C++. A typical Web page is an HTML documentwith text, “links” that a user may activate (e.g. “click on”), as wellas embedded URLs pointing to resources (such as images, video or sound)that the client must fetch to fully render the Web Page in a browser.These resources may not be located on the same server that the HTMLdocument was sent from. Furthermore, HTTP allows for the transmission ofcertain information from the client to a server. This information can beembedded within the URL, can be contained in the HTTP header fields, orcan be posted directly to the server using known HTTP methods.

[0037]FIG. 2 is a block diagram of a representative “client” computer.The same or similar computer can also be used for each of the servers.The system unit 21 includes a system bus 31 to which various componentsare coupled and by which communication between the various components isaccomplished. The microprocessor 32 is connected to the system bus 31and is supported by a read only memory (ROM) 33 and random access memory(RAM) 34. The ROM 33 contains, among other code, the basic input-outputsystem (BIOS) which controls basic hardware operations such as theinteraction and the disk drives and the keyboard. The RAM 34 is the mainmemory into which the operating system 60 and application programs, suchas a Web browser 62, are loaded and cached 63. The memory managementchip 35 is connected to the system bus 31 and controls direct memoryaccess operations, including passing data between the RAM 34 and thehard disk drive 36 and the floppy disk drive 37. The CD ROM 42, alsocoupled to the system bus, 31, is used to store a large amount of data,e.g., multimedia programs or large databases.

[0038] Also connected to the system bus 31 are various I/O controllers:the keyboard controller 38, the mouse controller 39, the videocontroller 40, and the audio controller 41. The keyboard controller 38provides the hardware interface for the keyboard 22, the controller 39provides the hardware interface for the mouse (or other hand-operatedinput implement) 23, the video controller 40 provides the hardwareinterface for the display 24, and the audio controller 41 is thehardware interface for the multimedia speakers 25 a and 25 b. A modem 50(or network card) enables communication over a network 56 to othercomputers over the computer network. The operating system 60 of thecomputer may be Macintosh OS, OS/2, AIX, BE OS or any other knownoperating system, and each client computer is sometimes referred to as a“client machine”, a client “computer”, or simply as a “client.”

[0039] As noted above, the Internet includes a public network using theInternet Protocol (TCP/IP) and includes servers 10 which are accessibleby clients 12. When a Web browser 62 is used to access a file on aserver 10, the server 10 may send information including graphics,instruction sets, sound and video files in addition to HTML documents(Web pages) to the requesting client.

[0040] In accordance with the present invention, a tracking program isembedded in a resource, such as an HTML document which is sent from aserver to a client based on a TCP/IP request. The tracking program mayoriginate on a different server than the resource, in which case it maybe obtained by the client through a TCP/IP request to the other server.The tracking program executes on a client machine, and is stored, forexample, in RAM. The tracking program may monitor various indicia, suchas time, mouse events, keyboard events, and the like, in order to tracka user's interaction with the Web page. Thus, the tracking program maysimply monitor the amount of time the user spends interacting with theWeb page, or may monitor details of choices (such as links) made byindividual users within a particular Web page.

[0041] In some cases, clients will “cache” a resource obtained over thenetwork (or temporarily store a copy of the resource on the user'scomputer), and may use the cached copy of the resource instead ofobtaining it over the Internet when the resource is needed at a latertime (for example, in order to completely render a Web page). In suchcases, neither the basic operations nor functions of the trackingprogram nor the transmission of tracked information to a server, differfrom the cases where cached copies were not used.

[0042] In one embodiment of the present invention, a tracking program isembedded in an HTML of a Web page and downloaded by a client. Thetracking program may monitor operation of a peripheral input deviceconnected to the client machine, such as a keyboard or mouse, keep arecord of which choices, if any, are made by a user, and may monitor thelength of time the user has displayed the Web page in addition to thetime spent interacting with a particular part of it. While in thepreferred embodiment, the tracking program is embedded in an HTMLdocument, those skilled in the art will recognize that other mechanismsare possible for embedding the tracking program in the client hardware,and the patent is not limited to implementation as an executable programembedded in an HTML document. For example, the tracking program may bedownloaded and installed in a client process, as would be the case for aso-called “plug-in” or “helper” application. Alternatively, the trackingprogram can be built into a client application or client process suchthat it need not be separately downloaded and installed. In addition,the teachings of the present invention are not limited to use on theInternet or the World Wide Web. For instance, the tracking program ofthe present invention may be utilized on a so-called “Intranet”.

[0043] As noted above, a client process, such as a Web browser runningon the client machine, uses a TCP/IP connection to pass a request to aWeb server running an HTTP service (or “daemon” under the UNIX operatingsystem). The HTTP service then responds to the request, typically bysending a Web page formatted in the Hypertext Markup Language, or HTML,to the browser. The browser displays the Web page using local resources(e.g., fonts and colors). Unless the tracking program is alreadyresident in the client, it is embedded in the Web page and downloaded tothe client along with the Web page. The tracking program is executedafter any required initialization has occurred. The tracking program maymonitor the length of time the user remains in the Web page, or any oneor more portions thereof, and may track some or all mouse and keyboardevents to provide meaningful data to the server concerning the user'sinteraction with the Web page.

[0044] In its simplest form, the tracking program is a timer programlinked to an HTML document and is downloaded and executed on a clientwhen the HTML document is served to the client in response to a clientTCP/IP request. During or after the client formats and displays the Webpage specified by the HTML document, the tracking program begins asoftware timer to monitor the amount of time the Web page is displayedon the client computer.

[0045] When the user leaves the Web page (for example, by exiting theWeb page or “clicking” on a link to another resource on the same oranother server), the tracking program sends the monitored time toanother computer on the Internet for storage and analysis.

[0046] As illustrated, for example, in FIG. 3, the client issues aTCP/IP request for a Web page located on a Server A (S301). After ahandshaking period, the Server A begins to send the HTML formatteddocument, which contains an embedded URL referencing the trackingprogram. The client additionally issues a TCP/IP request to the Server Breferenced by the embedded URL in order to obtain the tracking program(S302). The client also makes any other TCP/IP requests (S303) to obtainany other resources (such as images, video or sound) needed in order tofully render the Web Page (S304). Each of such resources are typicallyreferenced by individual URLs embedded in the HTML document. Theserequests need not occur in any specific order and may referenceresources located on any server. In addition, the information requestedmay be received in any order. When the tracking program has beenobtained, the client process (i.e., the Web browser) saves the trackingprogram to RAM (S305). After any necessary initialization, the trackingprogram initiates a software timer to monitor the amount of time the Webpage is displayed (S306). When the client leaves the Web page (S307),the tracking program calculates the amount of time the user hasinteracted with and displayed the Web page and sends this information toa server. Other available client information, such as the network ID andclient ID, or so-called “Cookie” of the client, is also sent to theserver (S308). If desired, other information concerning the clientcomputer may be automatically acquired and sent to the server, such asthe type of hardware in the client computer and various resources thatare resident on the client computer.

[0047] Due to the technical limitations imposed by the Internet, theJAVA programming language was applied to the Internet in 1995 byprogrammers at Sun Microsystems, Inc. of Mountain View, Calif. Forexample, some of the fundamental technology issues facing networkprogrammers and engineers are portability, bandwidth and security.Portability allows the same executable code to run across multipleoperating systems. Bandwidth specifies the amount of information thatcan transfer across the network at any time. For instance, high-speedlines categorized as T1 through T3 can transmit data at 1.544 through 45megabits per second, ISDN lines can transmit data at rates of 64 through128 kilobits per second, and standard phone lines, over which most userstransmit data, currently transmit using modems at approximately 28.8kilobits per second. In the case of a 640×480 pixel window on a computerdisplay that is capable of displaying images in 256 colors (whichrequires one byte per pixel), in order to display the window's contentsrequires 307,200 bytes of data. To create an animation, programstypically display 15 to 30 different images per second. Given a 640×480window, 15 to 30 frames per second would require 4,608,000 to 9,216,000bytes per second. Because many users are currently browsing the Webusing 28.8 kilobit (or slower) modems, there is simply not enoughbandwidth to download animation screens. As a result, many Web sitestoday resemble magazines whose images are for the most part static(unchanging). However, to satisfy an audience that spends many hours infront of dynamic television images, Internet programmers and engineersmust provide a way to animate Web sites. One solution is to downloadprograms written in the JAVA programming language that implement theanimation.

[0048] Animation is only one example of the use of JAVA. Using JAVA,programmers can create stand alone programs similar to those thatprogrammers can develop using C++, and can also create so-called“applets” that run within a Web browser. To address security issues,JAVA developers ensured that a programmer could not develop a computervirus using a JAVA applet and that an applet could not arbitrarilytransfer information concerning a user's system (such as a file on theuser's system) back to the server. Thus, JAVA applets have limitedoperations. For example, a JAVA applet generally cannot currently reador write files on the user's system. In this way, an applet cannot storea virus on a user's disk or arbitrarily read information stored on auser's disk. In addition, for other security and stability reasons, JAVAdevelopers eliminated or changed many features of the C and C++programming languages, such as pointers, with which advanced programmerscould bypass JAVA's security mechanisms.

[0049] JAVA applets run within a “JAVA-enabled client”, such as NetscapeNavigator version 2.0 (Windows 95 or Windows NT versions only) or later,or Microsoft's Internet Explorer version 3.0, or later. In addition,since most users browse with personal computers running Windows,Macintosh, UNIX-based systems, and the like, the JAVA developersdesigned JAVA to be portable, or “platform-independent”. Thus, the sameJAVA applets can be downloaded and run in any JAVA-enabled clientprocess, irrespective of the platform type.

[0050] JAVA applets can be used by developers to create sophisticated,fully interactive multimedia Web pages and Web sites executable on anyJAVA-enabled client. Representative JAVA applets are disclosed, forexample, by O. Davis, T. McGinn, and A. Bhatani, in Instant JavaApplets, Ziff-Davis Press, 1996.

[0051] Since JAVA provides the ability to download complex programminginstructions in the form of applets that are executable by aJAVA-enabled Web browser, the tracking program of the present inventionmay be implemented in the JAVA programming language. As will be readilyappreciated by those of ordinary skill in the art, however, theteachings of the present invention are not limited to JAVA applets or tothe JAVA programming language whatsoever. In connection with theInternet, for example, the present invention may also be implemented ina so-called “Active-X” environment, in which the tracking program iswritten as an Active-X component.

[0052] As will be further appreciated by those of ordinary skill in theart, security restrictions may, in some cases, prevent one from havingdirect access to information stored on a client's hard disk, such asclient IDs. In such cases, other means may be used to obtain thisinformation. For example, when a Web browser makes a request forinformation from a server it typically includes certain informationabout the client in the “HTTP request header.” The server receiving therequest can obtain and store this information using known meansimplemented, for example, in a so-called “CGI script” executable on theserver. Therefore, one way of obtaining client identifying indicia is toembed a request in the HTML file for another resource on a server thatwill obtain and store the indicia. This resource may be a program (suchas a CGI script) that captures relevant information and stores it. Thisinformation can then be combined with information monitored by thetracking program to provide a more detailed knowledge base. Thisembedded request may be in addition to the embedded tracking program.Representative CGI scripts capable of capturing client identifyingindicia are disclosed by A. Gundavaram, in CGI Programming on the WorldWide Web, O'Reilly Press, 1996.

[0053] In order to store client-identifying indicia, such as a user'snetwork ID (IP) and client ID numbers (cookies) and associated trackinginformation, a database is set up on a server. This may be done in anyknown manner, such as by using a commercially-available database programdesigned, for example, for the high-speed processing of large databases.In the case of the tracking program described above, the informationstored in the server database may include the network ID, client ID, theassociated link (the URL of the Web page), the amount of time the userspent interacting with the Web page, and any selections or choices madeby the user while interacting with the Web page. Thus, theabove-described tracking program permits Web site administrators andInternet advertisers, for example, to determine not only the number ofuser visits or hits made to a particular Web page, but also permits theaccurate determination of the length of time users have displayed and/orinteracted with their Web page. This is invaluable information toInternet advertisers, among others, and permits advertisers to makeinformed decisions as to the effectiveness and value of particular Webpages and/or ad banners.

[0054] A more particular embodiment of this aspect of the invention isillustrated in FIG. 4. A Web page (or HTML document) is requested by theclient from a first server A, using TCP/IP and HTTP protocols (S401).This HTML document contains text, as well as embedded URLs that point tographical images (e.g. GIF format image files) also located on the firstserver A. The images, in general, may be located on any HTTP server onthe Internet. These images are embedded inside the Web page using theknown HTML <IMG> tag, which allows one to specify the source URL for animage, as well as additional information such as size and other layoutparameters. These images will then be fetched by the client using TCP/IPand HTTP protocols from Server A (S402) and rendered on the browser(S405). The Web page (or other Web or HTML document) additionallyincludes embedded URLs which point to two resources that reside on asecond server “B”. One of the resources is an executable program, whichexecutes on Server B, and is a CGI script. This resource is alsoembedded inside the Web page using the <IMG> tag. Thus, in attempting torender the Web page, the client will automatically fetch this resource(S403), which forces execution of the CGI script on the second Server Band the return of information output from the script to the client. Inthis case, the information returned to the client is formatted as an GIFimage type which is extremely small as well as completely transparent(S403B). When the CGI script executes, it may collect information fromthe HTTP request header such as browser type, network ID (IP address),and if set, client ID (“cookie”), as well as any additional availableinformation such as time of execution and the URL of the Web page, andstore it in a database-for example using SQL (S403A, S404). In stepS403B, the CGI script returns information to the client, which includesa response header which indicates (among other information), that thereturn type is an image, that this resource should not be cached by theclient, and if no client ID is set and the client supports it, that aclient ID is to be set to a value generated by the script.

[0055] In addition, the CGI script may monitor the number of times theWeb page has been accessed in general. On the other hand, another CGIscript located on the same or another server may be used for thispurpose. This process may be carried out by simply incrementing acounter each time the resource is accessed, or may be conducted at anyother time by merely counting the number of entries made in a storedrecord of requests made for the resource.

[0056] The other resource located on Server B is a JAVA applet, thetracking program. This resource can also be located on any other server,and is embedded in the Web page using the known HTML <APPLET> tag, whichallows one to specify the source URL (through the CODE and CODEBASEparameters) as well as additional size, layout and initializationparameters. The client, in attempting to render the Web page, willautomatically fetch the applet by making a request to Server B using theTCP/IP and HTTP protocols (S406). Soon after it has received the JAVAcode for the tracking program, it will first execute the INIT(initialization) method of the applet (S407) and then the START method.The START method will make note of the current time using standard JAVAmethods (S408). The STOP method of the applet which is executed, forexample, when the user leaves the Web page (S409), will compute thedifference between the current time and the time noted during executionof the START method. This difference, which is the time betweenexecution of the STOP and execution of the START methods, is sent to theServer B for storage and analysis (S410). The information can be sentusing standard JAVA network methods, such as opening a URL connection toa second CGI script on Server B (or any other server) designed tocapture the tracked information (S410A). This second CGI script can thenobtain any information tracked and transmitted by the applet as well asany available information in the HTTP request header. This informationcan be stored in a database on Server B or elsewhere. If necessary, theinformation stored by both scripts may be combined into one or morecomplete databases. As will be understood by those of ordinary skill inthe art, acquisition of information by the server need not be conductedusing CGI scripts. For instance, this information may be acquired by anyother server-resident process designed for this purpose, or may beuploaded by the tracking program or other client-resident process, suchas by a direct connection to a resource located on a server (i.e., adatabase), or by using any other known process.

[0057] The database thus constructed can be indexed by resource identityand may contain information about users who have visited the Web page,such as their network and client IDs, how often they visited the Webpage, how long the Web page was displayed, and so on. Additionally, ifthe above-mentioned tracking mechanism is implemented across various Webpages in a particular Web site, the database thus constructed maycontain similar information about the different Web pages in the Website. Similarly, the information acquired by the tracking program may becombined with a process for monitoring the number of times the Webresource has been accessed. An analysis of the data on a user-indexedbasis would facilitate the determination of individual user interestsand the like. On the other hand, analysis of the data on aresource-indexed basis would allow the determination of, for example,which Web pages are viewed the longest and/or most often either by usersin general, or by specific users. Thus, it would be possible todetermine if there were different types of users that preferreddifferent sections of the Web site (because, for example, they spentmore time browsing different sections of the Web site). Additionally, ifthe above-mentioned tracking program is attached to an ad banner that isembedded in multiple Web pages across different Web sites (as istypically the case with ad banners), the database thus constructed maycontain information about how often and for how long the different pagesthat contained the ad banner were displayed, as well as more specificinformation about users that visited those pages. With this information,advertisers could determine the accuracy of data supplied to them by Website administrators about the number of times their ad banner wasdisplayed, as well as learn how long the Web page containing the adbanner was displayed-a number that would be of great use in determiningthe effectiveness of their advertising.

[0058] In another embodiment, the software timer of the tracking programmay be initiated or stopped when the user incurs a keyboard or mouseevent, such as by “clicking” on a specified area of an ad banner. Thisis illustrated in the flowchart shown in FIG. 5. Operation of the systemin this embodiment is similar to that shown in FIG. 3. Thus, the clientfirst issues a TCP/IP request (S501). After a handshaking period, afirst Server A begins to send an HTML formatted document, which containsan embedded URL referencing the tracking program. The clientadditionally issues a TCP/IP request to a second Server B referenced bythe embedded URL in order to obtain the tracking program (S502B). Theclient also makes any other TCP/IP requests to obtain any otherresources (such as images, video or sound) needed in order to fullyrender the Web Page (S502A). Each of such resources are typicallyreferenced by individual URLs embedded in the HTML document. Theserequests need not occur in any specific order, and the informationrequested may be received in any order. When the tracking program hasbeen obtained, the client process (i.e., the Web browser) saves thetracking program to RAM (S503B). In this case, the tracking programcommences a software timer upon the detection of a predetermined useraction (S504). When the user performs another predetermined action(S505), the tracking program calculates the amount of time between thepredetermined user actions, and sends this information, along with otheravailable client information, to the server (S506).

[0059] Thus, for instance, the software timer of the tracking programmay be used in monitor the amount of time a user spends interacting witha portion of a Web page. For example, if the Web page is provided withan interactive resource such as a game or an information resourceactivated by clicking on a particular button, the tracking program maydetermine how long a user has interacted with such a selection. In thecase of a Web page provided with an ad banner, the tracking program canbe designed to monitor the amount of time a user has interacted with thead banner.

[0060] The tracking program may be used not only to monitor the timespent by a user in a Web page or an ad banner, but may also be used tocreate a more complex “historical” user profile to permit the server toassemble a Web page or target an ad banner based upon the diverseinterests of respective users.

[0061] For example, when a user is exposed to an ad banner havinginformation targeted to their particular interests, the user is morelikely to interact with that ad banner for a longer period of time andon a more frequent basis, thereby increasing the value of that adbanner. In accordance with the present invention, in order to learn theparticular interests of respective users, an ad banner may includespecific information permitting the user to interact in different wayswith the banner. The ad banner may have pull-down menu options,clickable buttons or “hot-spots”, keyboard input, or any number of inputmechanisms, whose selection or action upon in a designated manner causescorresponding events to take place in the ad banner such as thegeneration or synthesis of sounds, the display of images, video, orgraphic animations, or the presentation of different types ofinformation to the user, perhaps with additional choices. Suchinformation may, for example, include links to interactive games, linksto entertainment information, sports-related games and/or trivia, andthe like, or information concerning particular goods and services, ormeans by which to order or purchase specific goods and services. Themore choices that are made available, the more information that can beacquired concerning the user's particular interests. Of course, anunlimited number of possibilities are available, depending upon theapplication, and an exhaustive listing of such possibilities cannot beprovided herein.

[0062] In this case, the tracking program is downloaded, as describedabove, with the HTML document in response to a TCP/IP client request. Asabove, the tracking program may monitor the amount of time the userspends displaying both the Web page and the ad banner embedded in theWeb page as a whole, but also monitors the user's interaction with theWeb page and the ad banner, such as by monitoring each of the choicesmade by the user within the Web page and ad banner. Thus, for example,if an interactive sports-related game is included in the Web page, thetracking program will determine if a user has played the game, what hisor her score was, how long they played the game, and any other possibleinformation. If a choice of different games, each directed to adifferent interest, are made available to users within the same adbanner, it is possible to determine what is of most interest to the userby the selection of the game. In addition, the ad banner may be providedwith multiple links to other, diverse Web sites, such as Web sitesrelating to sports, entertainment, general information, technology,history, and the like. The tracking program monitors which of thevarious links are selected and provides this information to the server.As discussed above, other available client information may also be sentto the server. This information is sorted and stored in the serverdatabase and may be analyzed manually or automatically.

[0063] The tracked information may be used to assemble resources gearedtoward the user's interests. Based upon the historic user profilescreated in the server database, downloading of information to the sameclient on a subsequent visit to the same or different Web page may bedone on a more intelligent basis. For example, users who have previouslyexpressed an interest in sports-related trivia (as indicated by theirpreviously tracked behavior) may be served with information targeted toaudiences interested in sports. Similarly, users who have expressedgreater interest in technology may be served with technology-relatedinformation that would be of much less interest to other users. Theassembly of a resource such as a Web page may be easily accomplished.For example, the HTML document of the Web page may include a pluralityof embedded resources. Previous choices made by a user on a particularclient computer and stored in a user profile database may be used todetermine which of the resources is to be downloaded to that clientusing simple logical processing instructions. For instance, a userprofile which indicates that a user has a greater interest insports-related information than in historical information may be used todownload sports-related resources, such as GIF-type images andadvertisements. Since the user has previously expressed a greaterinterest in sports, sports-related advertisements may therefore betargeted to that user.

[0064] A particular implementation of this mechanism is illustrated inFIG. 6. A Web page is requested by the client from Server A (S601). ThisWeb page contains text, as well as embedded images which must be fetchedfrom Server A (S602) and rendered (S605). In addition, the Web pagecontains embedded URLs that point to two resources on Server B. Thefirst resource is a first CGI script 1, which is embedded inside the Webpage using the standard HTML <IMG> tag (S603). In attempting to renderthe Web page, the client will automatically fetch the resourceassociated with the <IMG> tag on Server B, which will result inexecution of the CGI script 1. This CGI script 1 can capture clientinformation such as Network ID or Client ID (S603A). The CGI script alsoreturns a transparent image (S603B).

[0065] The other resource on Server B is a Java applet, which is acombination ad banner and tracking program. This may be stored on anyserver. In attempting to render the Web page, the client willautomatically fetch the Java code (S604), download, initialize, andstart operation of the applet (S607, S608). After the applet isinitialized, it contacts Server B to obtain other resources it needs inorder to display images, play sounds, or control its overall look andbehavior. In fact, the applet may obtain these resources by executingone or more CGI scripts or other processes that reside on Server B orelsewhere (S607). Based on information provided to these scripts throughstandard HTTP methods, including client information (S607A), such asnetwork and client IDs, any other information such as the URL of the Webpage, as well as information captured by the CGI script 1, and thepreviously constructed historical database profile (S607B), differentinformation (images, sounds, text, etc.) may be returned to the applet.Such information can therefore be selected by the scripts based onNetwork and/or Client ID, the URL of the Web page, and the previouslyconstructed client profile. This may be accomplished in the mannerdescribed above.

[0066] The STOP method of the applet which is executed, for example,when the user leaves the Web page (S609), will compute the differencebetween the current time and the time noted during execution of theSTART method. This difference, which is the time between execution ofthe STOP and execution of the START methods, is sent to the Server B forstorage and analysis (S610). The information can be sent using standardJAVA network methods, such as opening a URL connection to a second CGIscript on Server B designed to capture the tracked information (S610A,S610B). In step S610A, the second CGI script may obtain any informationacquired by the tracking program (i.e., the JAVA applet), as well asclient identifying indicia transmitted by the client, such as in theHTTP request header. This information can be stored in a database onServer B. If necessary, the information stored by both scripts may becombined into one more complete databases.

[0067] In this embodiment of the present invention, two distinctdatabases may be created. The first database is indexable by resourceidentity (such as URL), and includes information such as URL of the Webdocument, number of times accessed, identity of clients that accessedthe Web document, amount of time displayed, amount of data displayed,average time displayed, number of times accessed, and the like. In thecase of an ad banner or other embedded resource which may be accessed bya link made by a user while browsing another resource, the database mayinclude additional information such as “click-through rate” (the numberof times the ad banner was clicked on to go to the Web site of theadvertiser), and the like.

[0068] A second database that may be created is indexable by individualclient, and includes information concerning individual client'sinterests and preferences. These separate databases may be combined in asingle database indexable by client or resource identity.

[0069] In another embodiment, illustrated in FIG. 7, the trackingprogram is used to create a database of information about a Web site(or, if desired, across multiple Web sites on multiple servers). In thiscase, the same tracking program is embedded in multiple Web pages servedup by the same Server A. The tracking program in general originates froma Server B (but may also originate from Server A). The tracking programwill monitor the time the Web page was displayed, and may capture anyother information available to it. For example, the tracking program candetermine the URL of the Web page it is embedded in and may determinethe amount of information downloaded by the client.

[0070] In particular, a Web page is requested by the client from ServerA (S701). This Web page contains text, as well as embedded images whichmust be fetched from Server A (S702) and rendered (S705). In addition,the Web page contains embedded URLs that point to two resources onServer B. The first resource is a CGI script, which is embedded insidethe Web page using the standard HTML <IMG> tag (S703). In attempting torender the Web page, the client will automatically fetch the resource onServer B, which will result in execution of a CGI script 1. This CGIscript 1 can capture client information such as Network ID or Client ID(S703A) and returns a transparent image (S703B). The other resource onServer B is a Java applet. This may be stored on any server. Inattempting to render the Web page, the client will automatically fetchthe JAVA code, store it in RAM, initialize, and start operation of theapplet (S707). The START method of the applet is executed and the applettakes note of the current time (S708). Thereafter, the applet contactsthe Server A and, if security restrictions allow it, the applet queriesthe Server A for the page it is embedded in, determines its size, aswell as the URLs of other embedded resources (such as images or video),and requests header information about these resources in order todetermine their size (S709). In this case, the tracking program maydetermine the size of the fully rendered Web page, (i.e., the number ofbits that must be downloaded in order to fully render the Web page). Ifthe tracking program is part of a larger embedded application thatdisplays information downloaded from a server (such as a live news feedapplet), the tracking program can also monitor the amount of informationdownloaded and displayed by the applet. Before or as the user leaves theWeb page (S710), the tracking program can transmit this information toServer B for storage and analysis (S711, S711A, S711B). In this manner,it is possible to build a database of accurate information concerninghow often different pages of a Web site are requested, how long they aredisplayed, and how much information was downloaded. This informationwould be of use to Web site administrators in order to judge thepopularity of different Web pages, as well as for example to setadvertising rates for any embedded advertisements.

[0071] In yet another embodiment, the tracking program is used toassemble a bill for the user's access to information. For example, userswho have access to a live news or entertainment feed may be chargedaccording to the amount of information displayed, either according tobit size or time, or both. Imagine that the tracking program is attachedto a live feed applet. The tracking program monitors the time theinformation is displayed and the amount of bits downloaded andautomatically transmits this information back to a server when the userleaves. Together with the user's ID (client and network), and billinginformation that the user was previously requested to enter, it ispossible to determine the correct charge for the user. Similarly, a usercould be charged and billed for time spent on a Web page, as well asamount of information downloaded by him or her.

[0072] The methods embodied in the invention may be used to create webresources with so-called “persistent” state. That is, the trackingprogram, in addition to the client profile database, may also be used tocreate a Web resource that appears to automatically “remember” theuser's previous interactions on the Web resource. This may beimplemented as in FIG. 6. For example, consider a Web page with anembedded Crossword program which also incorporates tracking mechanisms.When the page is rendered and the Crossword program commences, a user isable to use the keyboard and mouse to fill in letters on the Web pagebased on clues that are displayed. At the same time, these choices aretracked, along with any other information including but not limited totime. Before or at the time the user leaves the Web page, the trackedinformation is sent to a server for storage (S610). When the user laterreturns to that page, the network or client ID is used to automaticallyfill in the letters in the crossword that were previously selected (Asin S607-607C).

[0073] Although the invention has been described in terms of preferredembodiments, those skilled in the art will recognize that variousmodifications of the invention can be practiced within the spirit andscope of the appended claims. Thus, for example, the scripts used totransfer data need not be CGI scripts but could be a dedicated server ora direct connection to the database, such as using JDBC (Java DatabaseConnectivity) to place data into the database.

[0074] In addition, while the preferred embodiments have been describedin connection with JAVA applets that are executable on a client, thetracking of user interaction may be accomplished by a client executableprogram written in a language other than JAVA. For example, theteachings of the present invention may be accomplished using Active-Xcomponents in conjunction with the Internet Explorer Web browser. Inaddition, the tracking program need not be a program that executes onthe client computer. For example, the tracking program may comprise aCGI script located on a server. Upon execution of the CGI script, thetime at which a Web page is downloaded may be determined. By modifyingWeb browser software using appropriate instructions, the browser can beused to send a signal to the server that downloaded the Web page uponthe occurrence of a predetermined user operation (such as exiting theWeb page or clicking on a link to another Web page or resource). In thismanner, a program running on the server can be used to determine thetotal time period the user has interacted with and displayed the Webpage.

[0075] It should also be appreciated that while the preferredembodiments of the tracking program use a single database to store theinformation, multiple databases could be used to store and process theinformation.

[0076] In addition, while in the preferred embodiments of the trackingprogram the server that originated the tracking program and the databasereside on the same machine, this is not a requirement of the presentinvention. The database may instead reside on a separate machine fromthat which serves the tracking program. Similarly, while in thepreferred embodiments the server that originates the network resource,or Web page (Server A), and the server that originates the trackingprogram (Server B) are different servers, this is not a requirement ofthe present invention. The network resource (Web page) and the trackingprogram may be served out by the same server.

[0077] It should also be appreciated that while in the preferredembodiments the tracking program uses the HTTP and TCP/IP protocols,other network data transmission protocols could be used that implementthe same functionality. Moreover, use of an HTML formatted Web page isnot necessary. The information supplied to the user may not be in theform of an HTML or Web document such as a Web page, but can be someother form of information. In addition, the tracking program need not bedownloaded to the client from the server, but can be an added module tothe client application or Web browser running on the client, or may bestored elsewhere on the client machine. For example, in the former case,added modules could be plugins and in the latter case could be referredto as cached resources. In such cases, the client application or Webbrowser would include appropriate means to enable activation of thetracking program and the uploading of a client profile based upon theuser's interaction with a Web page or network resource.

[0078] Moreover, although in the preferred embodiments it is envisionedthat the network resource or Web page is downloaded from a remoteserver, this is not a limitation of the invention. The precise locationof the target document or server is not important. For example, thetarget document may even be located on the hard drive of the clientmachine.

[0079] Also, while in the above-described embodiments, the clientprofile is created automatically using information acquired by thetracking program and one or more CGI scripts and is stored in the serverdatabase, the client profile can be created in a different manner and/orsupplemented by additional information. For example, one such techniquefor creating a client profile is through the use of HTML “fill-in” formtags. In such cases, the client profile is created not by the trackingprogram, but instead by the client. Based on the client profile, theserver can serve out information targeted to the client's interest, asrevealed by the fill-in form.

[0080] Also, while the preferred embodiments have been described in thecontext of Web browser software, the techniques of the invention applyequally whether the user accesses a local area network, a wide areanetwork, a public network, a private network, the Internet, the WorldWide Web, or the like, and whether access to the network is achievedusing a direct connection or an indirect connection. For example, inconnection with the World Wide Web, the teachings of the presentinvention apply whether a network connection is obtained via a directInternet connection or indirectly through some on-line service provider.Thus, the “computer network” in which the invention is implementedshould be broadly construed to include any computer network in which oneor more clients is connectable to one or more servers, including thosenetworks based upon the client-server model in which a client can linkto a “remote” document (even if that document is available on the samemachine, system, or “Intranet”).

[0081] It should also be appreciated that while in the preferredembodiments the tracking program is downloaded with the Web page fromthe server, this is not a limitation of the invention. The trackingprogram need not be embedded within an existing Web page, but rather maybe embedded within a Web browser or supported elsewhere within theclient itself. Thus, the tracking program may be initiated whenever acall to a Web page or network resource is made, such as when a search toa particular URL is initiated, or when a previously-stored URL islaunched.

What is claimed is:
 1. In a computer network having one or more serversconnectable to one or more clients, a method of monitoring userinteraction with a file downloaded from a server, comprising the stepsof: using a client to specify an address of a resource located on afirst server; downloading a file corresponding to the resource from thefirst server in response to specification of the address; using theclient to measure the amount of time the user spends interacting with ordisplaying the file downloaded from the first server; using a server toacquire client identifying indicia from the client; and uploading theamount of time measured by the client to a server.